// plugins/axios.js
import axios from 'axios';
import qs from 'qs';

// 创建一个 axios 实例
const axiosInstance = axios.create({
  timeout: 2000, // 请求超时时间
  headers: {'X-Custom-Header': 'foobar'} // 自定义请求头
});

// 配置请求和响应拦截器
axiosInstance.interceptors.request.use(config => {
  // 添加认证 token
  let token = window.localStorage.getItem('token') || window.sessionStorage.getItem('token')
  if (token) {
    config.headers['Authorization'] = `Bearer ${token}`;
  }
  return config;
}, error => {

  return Promise.reject(error);
});

axiosInstance.interceptors.response.use(response => {
  return response;
}, error => {
  return Promise.reject(error);
});

// 将 qs 添加到 axios 实例的默认配置中，用于处理请求参数
axiosInstance.defaults.paramsSerializer = params => {
  return qs.stringify(params, { arrayFormat: 'brackets' });
};

export default axiosInstance;